perm filename CANON.RAS[UP,DOC]11 blob
sn#656208 filedate 1982-04-30 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00016 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00003 00002 ---- ImPrint-10 Printer system overview --- by RAS ---- 12/7/81
C00012 00003 Preparing an IMP file from listings and TEX:
C00016 00004 CPrint: printing your IMP file
C00021 00005 Fonts for the ImPrint-10
C00025 00006 MakImp: switches
C00031 00007 extra information: font expansion, other switches, sources
C00035 00008 text output and errors
C00041 00009 ImPress format, Read-IMP program
C00044 00010 Overview
C00051 00011 ImPrint-10: starting the CPU
C00055 00012 Console messages while printing
C00058 00013 Starting the ImPrint-10 Printer
C00063 00014 Turning Off Canon
C00064 00015 Diagrams
C00067 00016
C00072 ENDMK
C⊗;
---- ImPrint-10 Printer system overview --- by RAS ---- 12/7/81
Address questions, suggestions and bug sightings to RAS.
(including questions about MakImp, CPrint and Rst fonts, font
conversion, using an ImPrint, supplies and quality of the output.)
OVERVIEW:
There is no such thing as a Canon printer at Margaret Jacks Hall. We do
have its successor, an ImPrint-10, manufactured and `maintained' by the
Imagen Corporation. The ImPrint-10 in our basement is hereby named
`Canon' to honor its ancestor.
The ImPrint-10 printer system is made up of a Canon LBP-10 printer, a
printer controller board, an M68000 based micro, a serial line connected
to a console terminal and either a 9600 baud serial line connected to a
host or an ethernet board with which printing requests are received.
The ImPrint-10 is a stand-alone entity. We (at Sail) talk to it via a
9600 baud terminal port and protocol. The HeathKit console terminal
alongside allows direct communication with the ImPrint micro for
initialization, indecipherable status messages and debugging.
ImPrint software, inside the ImPrint CPU:
ImPress Translater, Painter program
Texto currently at Diablo- will be in ImPrint-10 someday
currently can only be used from IAZ's account at Diablo
with output sent to the ImPrint in LTP's office
Sail software:
PTex, to create DVI files from TEX files;
MakImp, to translate DVI files and listings into IMP files;
Troff→ImP, coming soon to a CPU near you;
Scribe→ImP, is it coming? Only its hairdresser knows for sure,
there is currently a C version somewhere.
CPrint, to send an IMP file to the ImPrint for printing.
Roughly, the procedure for using the ImPrint is:
Prepare your ImP file, run PTex on a TEX file, then run MakImp;
Make sure the ImPrint CPU is ready (page 11);
Make sure the ImPrint printer is ready (page 13);
Send your file to Canon with DO CPrint[can,sys] (page 4).
Documentation is available:
Canon.ras[up,doc] - how to use Canon and supporting programs
ImPress.ras[up,doc] - ImPress language description and file format
Rst.ras[up,doc] - Rst font file description
Canon.con[can,sys] - Canon's current physical condition
NOTES:
IF Canon SPEWS PAPER, PULL OUT THE PAPER TRAY and reinitialize (page 11).
There are no headers or title pages yet, so any listings lying around
are fair game for use as samples.
Since there is no spooler, your printing is done WHILE YOU WAIT, so
when it has started printing, instead of waiting, PICK UP YOUR OUTPUT.
But don't stop here, the details are vital. Read on!
Preparing an IMP file from listings and TEX:
LISTINGS:
Create an IMP file from a listing with MakImp. Simply "R MakImp" and you
will be prompted for the name of the input file.
Currently we do not have many fonts for listings. The default is CMSA10
at magnification 0.8 which gives 67 lines per page and 122 characters per
line. See doc on the \f switch (page 7) to choose your own font.
TEX Sources:
Compile your program in MYFILE.TEX with the Pascal version of TEX, PTEX:
.R PTex (report any problems to IAZ)
*\input myfile
This will create a file MYFILE.DVI on your directory.
Make a .IMP file from your .DVI file with MakImp:
.R MakImp (report any problems to RAS)
and to the prompt, type MYFILE (or MYFILE.dvi).
TEX FONTS:
There are two types of font files that you need to print TEX sources,
TFM files contain dimensions of characters in a device independent format.
Rst files contain the images of the characters at a particular resolution
and magnification as well as pertinent dimensions.
PTex gets its font information from TFM files in some directory; the
default is [TEX,SYS]. Most fonts currently have TFM there. MakImp only
uses Rst files. The default directory is [Can,Sys]. Below are
instructions on creating fonts.
Both PTex and MakImp look for a font file first on the directory
specified in the TEX declaration, then on the default directory. If no
directory is specified in the declaration, your current directory is used.
(Does TEX try the default if the one you specify is incorrect?)
If I have my own special TFM and Rst files in my FON directory, a
proper TEX font definition is thus "\font z=cmsy10[fon,ras]". If I wish
to use system fonts, I would say "\font z=cmsy10". Note that there is no
guarantee that the Rst font in [Can,sys] actually corresponds to the TFM
file in [Tex,sys]. A check-digit is written into both files, but not used.
If a font file is not found, MakImp will try substituting the same
font unmagnified and if this fails it will give you lots of error
messages. Someday it will allow you to specify an alternative font.
For more information on Rst fonts, see page 5.
CPrint: printing your IMP file
To print IMP (Impress) files, DO CPRINT[can,sys]. It will ask you for
the filename, on the end of which it will append the string `.IMP'. Thus
you can not specify a directory, you must print from your current
directory.
If someone else is using Canon, you will be asked to wait. Sometimes
this program never finishes, even though the printing job is done. You
might go downstairs and, if the Canon is idle, send a message to the
person using it. You can find out their user name with the command .PJ
tty57. If you have to map to their screen, to free up the line you must
type <call> and then give the Monitor command FINISH.
The sending program is quiet as it runs, unless the ImPrint needs
attention, paper, toner, premix or TLC. It also gives occasional useless
comments, While it is printing, or soon after, you should hop downstairs
and pick up your listing.
For information about the communication protocol, see ImProt.doc[can,sys].
Fonts for the ImPrint-10
Currently, only Rst fonts are used by programs that talk to the ImPrint-10,
namely MakImp and Texto. At Sail, they are kept in the directory [can,sys],
and can be made by running a special version of metafont that resides there.
MAKING Rst FONTS:
Rst format is documented in Rst.inf[can,sys]. Rst source code is
stored as .RAD files on [can,sys]. Documentation is in Rst.ras[up,doc].
You can make an Rst font file by running the copy of MetaFont that is
in [Can,sys] using mode=5. Make sure you use the CMBASE file in [can,sys]
too. The surest way to do this is by connecting to [can,sys] with the
monitor command: ".al can,sys".
Rst fonts come in different magnifications; an Rst font's name is
NAME.R## where ## is one or two digits that specify the magnification
times 10. Thus cmr10 at twice magnification is in a file cmr10.r20, at
half magnification is called cmr10.r5.
So, to make an Rst file on can,sys:
.al can,sys
.ru mf
*mode=5; input cmr10 % to make a font at magnification 1.0 or:
*mode=-5; mag=1.2; input cmr10 % to make a font at magnification 1.2
OTHER PROGRAMS:
RdRst allows you to look at the inside of an Rst file. It sends its
output either to the screen or to a file. Type \? to it for more
information. RdRstI is similar, but only gives information on each
character's dimensions.
Soon, hopefully, RdRst's ascii output file will have a standard format
that can be edited and there will be a MakRst program to convert it back
into an Rst file.
Also, we'll want a program to convert FNT files into the standard ascii
format. How about some Xerox format to ascii too?
SAMPLE FONTS
The programs MakSam and MakSsm make samples of Rst fonts. They are not
quite upto date, but will be up soon. MakSam is for text fonts, displaying
each character plus text. MakSsm makes a smaller sample excluding the text.
MakImp: switches
MakImp excepts several switches. After the file name, type "/"
and any combination of the following:
(Note: currently there is no way to produce multiple copies)
P # # PAGE RANGE (default -100:250) eg "p1:2" or "p7"
For DVI files, TEX page numbers are used. Note that this means that
if TEX never does a "\advcount0" call, every page is numbered 0.
For listings, the first page in number 1, new pages begin with each
form-feed character.
M # Magnification (range 0.1-9.9); eg "m1.2"
For DVI files, this magnifies the whole document by #. Note that you
can get into trouble by making the text larger than the page, in
which case MakImp will complain endlessly and chop off the extra.
If given, this mag will override the recommended mag given by TEX
in the DVI file, ie the results of a TEX "\magnify 1200" statement.
For listings, this will only magnify the font used to make the listing,
so the text will not run off of the page. Note that the default
font is at mag 0.8 already.
Setting Margins. The default margins put a one inch margin on the top and
left of most TEX output and listings. Examples show how to move margins
an inch toward the center of the page. Note that these are all absolute
pixel coordinates. On an ImPrint-10 there are 240 pixels per inch.
It is currently physically impossible for the ImPrint to print outside of
the given range.
← # Left Margin (default 262, range 0-1982); eg "←262"
→ # Right Margin (default 1982, range 0-1982); eg "←1982"
↑ # Top Margin (default 130, range 0-2330); eg "↑130"
→ # Right Margin (default 2330, range 0-2330); eg "↓2332"
TEX assumes there will be a left margin and may write left of it by giving
negative x-coordinates. MakImp will get violent if a TEX location is left
of zero. If this happens, look at the number MakImp tells you and
recompile, increasing the margin to at least that absolute quantity. And
do not increase it so much that the page goes too far to the right!
The top margin is added to every y-coord of your document, lowering the
page. TEX starts printing with a baseline at y=0, which to Canon means
about 1/2 inch from the top of the paper; ↑130 moves the document down so
TEX's y=0 baseline starts about 10 points (cmr10 font height) below the
top of the page. The bottom margin is an absolute pixel value below which
you can not print. Currently, Canon does not print below this coordinate,
so if you get an error that some y value is too large, raise the document
on the paper by making the ↑ value smaller. The left and right margin
values work like top and bottom, respectively.
T # Type of input file, # is one of: "L","D","R", specifying that the type of
input file is either a listing, a DVI file or an Rst file. MakImp will
look for a file of the specified type if you give one, otherwise, it will
use the file extension to determine the type, an unknown extension meaning
the file is a listing. If the file has no extension, MakImp will look for
a file with no extension, then try a few extensions it knows and infer the
type of fiie accordingly.
MakImp will echo its parameters as it begins processing your file, eg:
Input file name: big
Found DVI source big.dvi
M= 1.0 standard-paper pp:-100→250 ←262 →1982 ↑=130 ↓2332
extra information: font expansion, other switches, sources
The following two switches are for listings:
F s Font s, where s is a string (default CMSA10.R8); eg "CMSA10.R20"
This font is used for printing listings. Note that a font magnification
times 10 (the .R8 extension means at 0.8 mag) is included in the font
name. If no extension is given, @1.0 is assumed. And as noted above,
this magnification is multiplied by the global file magnification to get
the final font mag.
↔ # Spacing #, (default 1, range 1:4); eg "↔2" gives double spacing
Rst FONT FILE EXPANSION
Given an rst file as input, or a name and the switch "tR" MakImp will
produce pictures of the font expanded. The user will be prompted for the
size of each pixel and which characters ze wants to be printed. This
gives quick feedback to people creating small fonts where it is important
to see individual pixels. To view a magnified font, the extension must be
included in the file name.
OTHER SWITCHES
! The following swithes should not be used;
S s/l Size of paper- standard is 8.5x11 (the default), legal is 8x14.
Currently, though, Canon can only print on 8.5x11 paper, so there's
no reason to use this switch. Even if it could take longer paper,
the software can not print on it.
! The following is not well implemented, try not to use it;
I # Input data space (default 2, range 2-6); the maximum
number of 8k chunks of storage bytes available for input on a page.
This depends on how much space is available in the ImPrint CPU,
which is currently =55k. The rest of the space is given to
glyph data.
! The following are not up to date;
B# deBugging flags, default-none. "+" gives 1,2,4; "-" gives 1-6;
1-diagnostics 2-flow of control 3-verbose flow 4-debugging data
5-verbose data 6- 7-deletepack info 8-addnewchar info
9-draw chars on last page
All output goes to terminal and .ERC file.
MakImp SOURCES
Sail sources for MakImp and related files are kept as .SAD files on
[can,sys]. They are uptodate as of 1/25/82- ras.
The Pascal version of MakImp is currently under construction. The earliest
it might appear is in early February...
text output and errors
READING MakImp TEXT OUTPUT:
With no debugging flags set, MakImp prints a little output as it runs, eg:
[5.][4.][3.][2.][1.]
The number is the page number of the current page, the period is printed
when the page has been parsed, the "]" when the ImPress page has been
output to the Imp file.
If any errors are encountered, a .ERC file is opened and all messags go to
that file as well as to the screen.
When any debugging flag has been set, MakImp writes all output to a .ERC
file and produces at least one line of output for every page, eg:
[3⊂⊃⊂⊃.(c677)(ε91)(g13000 p9041)(p4312→1110) totpage=0 (o)]
The first number is the current page number according to TEX. A "⊂" is
printed whenever a font file is opened to be read; when it has been read
in, the "⊃" is printed. The period signifies that the page has been
parsed.
The "(c#)" tells how many glyph objects are on the page, "(ε#)" tells the
number of different glyphs that are currently defined, "(g# p#)" tells how
much glyph data is needed total, and how much needed on the page. If the
number in "g#" is larger than a certain amount (currently 48k), then the
next field will appear. "(pA→B)" means a pack was done, and the amount of
glyph data went from A to B. TotPage is the total number of description
bytes on the page. Currently the number for the totpage is wrong.
USER ERRORS:
A user error is that which causes an error message. It is most often
caused by a missing font file or typesetting off of the page. The former
can presently only be prevented by knowing which fonts are in [can,sys]
and generating any that are not there. The latter can be fixed by running
MakImp again, resetting the margins' values with switches, as described on
page 8. Both types of errors can be most easily caused by exaggerated
magnification. Also, a TEX error message telling of a box that is grossly
overfull might cause a "page-too-wide" error.
MakImp ERRORS:
MakImp is a research project of fluxuating priority. Bugs are promptly
addressed, if not fixed, but there have been no efforts to perform
exhaustive testing. Please report any bugs. Sending your ERC file and a
pointer to the original DVI file will help immeasurably.
The only crashing error of which I know, occurs if there are too many
objects and typesetting commands on the page. Currently 20000 words,
80000 bytes are allocated to the command array, much more than the ImPrint
can handle and much more than appears on any reasonable page. Because of
the use of Sail byte pointers, bounds checking is not obvious and not
done. Overflowing this array could cause unpredictable errors... This
will be fixed soon.
ImPress format, Read-IMP program
".Read ImPress" points you to ImPres.ras[up,doc], which describes both the
ImPress language and ImPress file format. There is also an ImPress manual
produced by Imagen and a file hidden somewhere on a Vax.
Basically, ImPress files contain the images of characters to be typeset
and a description of where to print each character or rule. ImPress files
are byte oriented, on Sail 4 bytes are packed per word in the (left) high
order bytes.
READING ImPress FILES- RdImp
RdImp translates ImPress files at Sail into ascii .IMR files. The format
is not quite like the ascii format in the manual which I found hard to
read. In addition, search for "!!"'s in the text to find caught errors or
warnings. Comments are enclosed in parentheses. Right before POPs, and
NL commands, the current page coordinate is added as a comment.
To run RdImp, just type ".R RdImp" to Sail and you will be prompted for an
IMP file name. Pictures of characters are not included in the IMR file.
To view these, add the switch "/c" to the file name and the images will be
sent to a .IMC file.
WRITING ImPress FILES
Currently, there is no IMR→IMP program, although it would be nice.
Someday it will be added as a MakImp input capability.
Overview
This description is for people writing programs that will produce ImPress
files. It is meant only as an overview, the ImPress manual contains the
actual specification of the ImPress language.
The Imp language is quite stable, except for the addition of some graphics
commands. The file format is also stable, except for the first few bytes
of the file. An overview od the format of an IMP file at Sail follows.
This format is sent directly to our ImPrint.
[January 25, 1982]
<#> - an ascii decimal "1":"6", the number of 8k blocks to give to
the input data, the rest of 55k goes to character storage.
MakImp's default is "2", allowing plenty of room for fonts.
<string> - any chars followed by a null, usually the file name.
"ImagImPr" - NOT followed by a null.
So, if "?"stands for the null character, the file WEAVE.IMP, made from a
TEX DVI source would start with the string "2WEAVE.TEX?ImagImPr" in the
first 19 bytes of the file, one character per byte.
Next come the pages. Before each page come character deletion and
definition commands. These can come in the page, but result in less
efficient operation of the ImPrint.
MakImp puts character deletions and definitions BEFORE pages. A page
starts with a PAGE command contains typesetting commands and ends with an
ENDPAGE command. Typesetting commands consist of commands to move an
abstract cursor and to print rules (black rectangles) and predefined
characters at the cursor's position.
For an example of these commands, see the Sail source ImpDef.sai[imp,ras]
for the command codes and the file ImpFun.sai[imp,ras] for little
procedures that output the commands- they will tell you the exact
parameters for each command.
The ImPrint has finite space for glyphs so you may need to tell it to
delete some between pages. MakImp has two space counting variables,
GLYPAGE knows how much glyph (cHar) space is used on a page, GLYDATA knows
how much is in the Imprint already AND on the page.
¬
MakAmp parses a page, sending the typesetting commands to one buffer and
the glyph defs to another. As it @∃CifAQQJAa¬OJXA%LAOYeICiB↓O←Kf↓i←↑A!SOPX4∃ShAMi←af↓IKMS9S]NA9Kn@A
QCef0AS]g∃eiS]≤AEYC9WfAo!K\@AQQKrA¬eJA]∃KIKH0@AC]⊂~∃←kQakif↓C\AKIe←dA5KggC≥J\~∀4∃βMi∃dAiQ∀AaCO∀@ASf↓aCeg∃HXAi!S]OfACeJ↓gK]hAi↑AQQJA∪5 @AM%YJ\@↓
SegPX@AS_~∃OYeICiB↓SfAi=↑@AQ%OPXA¬YX@A
QCef↓]←h@↓kgKH↓←\@AQQJAa¬OJ@A¬eJAI∃YKiK⊂@AoSQP~∃I∃YKiJ5GQCd↓G←[[¬]If\A)QK8A]KnAGQCIfACe∀AgK]PAi↑@↓iQJA%≠ AM%YJAMI←Z@AQQJ~∃
QCdA kMMKH\@@AQQK\AQQJ@AAβ∂
A
←[[C9H@ASLA←kiAkh@A→←YY←]KHAEd@ACY0A←L@↓iQJ~)G←[[¬]IfA→a←ZAQQJA←QQKdA kMMKHXAiQ∃\AiQ∀A≥ Aβ∂
A
←[[C9H\~∀4∃/QK8ACYX↓iQJAACOKf↓CeJ@↓MS]Sβ≠#↔⊃bβS#∃∧*>≠'d)β∂?nkπ;⊃αβ'Mβ>K[↔9π#=βSF)↓α&m4+≠Nc∃1β>C'∂!εK@~εm}rε&⎇lRpH!Q$Nr∞Mε*ε=↔ε∞>LW∩εLXfNv≡M⊗}r8m]8;Y∞5λ≥~T→[|M\=λ∪l@⊂:42H14z⊂≠px⊂4\β exactly
that of The Rst font file. See Rst.sai[rsT,ras], ImpFon.saiSi@5`YeCM:@A`P~∃C]⊂A∪[a→k\]g¬S7S[@YeCgtA`dAα3?Iβ/Cπ7Cd+@~ε|dεF␈t∩ε>O≡εBεL\fNv≡M⊗}r∧λ6}n\≥f h-≡2ε>≡lVrr∧λ7/↔,]g&g∃Dεvzivw"LV6Nm_
≥{H_m⎇;8;LNh≠Y,\λ≥≠dY(→m≡Y;KAQA"U
<Y(≡Y(∃∞⎇h≥≡.<h≠ld→[sNNkλ∀L↑z9→-nλ_;LD→>≥↑[X;∧9Yλ∞N{h≥∂≡→<h
|C"\L↑≤Y<l]]_=
≥{\k∧∞X<⎇↑H_;LD→;Xm|→9βD∧⊂⎇<N,;]≠∂∃α⊂0v≠⊂37g≥9P:yYr⊂0y→PεE2↑:2y7_v⊂90\z2y⊂→7w:9K⊂⊂"w_wr2rλ37w:≤P0y2H77z≡rz⊂"→s4w2Y⊂0w2λ6tst≥⊂72{→yεE0\82pyλ0yP2↑82y7_v⊂37[:9W⊂λεEεE⊂t0y0Xz2y9H7s⊂2↑:2y7_v⊂37[:9P7→rr⊂7≠P37w≥⊂22s~w4z4[w⊂1w[vpw2λ12qp]yrP:~2FE!Z0y0q]2y⊂ $efinition command associates an image with a particular character
of a font. Resident fonts need a font definition, to know which font to
asociate with a particular fOnt number. They need no character definitions
because that infOrmation is resident. For resident fonts, MakImp needs to
know each character's printing width as well as how much memory @∃CGP@4∃eKg%IK]h↓I←]h↓eKck%eKf@!iQKr↓CeJAIKCHA→eWZAAe←ZAQ↑A[C%\A[K5←erA¬bA]K∃IKHR8~∃πkIeK]i1rP⊃β&C↔K∃εK∃βvyβK↔≤¬⊗&.nDε&↑nN2ε∞lDπ&FT
vN'M∧ε6NLTε6←-\↔"ε≡4πN=λ≥
q"XY$→9Z-l9H∧↓"C"A∃KKKEeKKKEeKKKEeKKKEeKKKEeKKKEeKKKEeKKKEeKKKEeKKKEeKKKEa"C"AQ@↓I;4≤M≥],&πH≤⎇≡]~;Lt≥~→$λt∃#!!"S[nL.H~,d⊂x;M⎇H~<d
[⎇λ∞↑λ~
}→9]-M≡(_$
9<|l≤y(_,-⎇=λ
≡≤h_m⎇Y~=
≥{H≥l≡hβ"ML9]λ
≥H≥~T→Z;T⊂x;M⎇KX{mkxx;EN}<w%a"C"JM→(⊂j
(~_.4≥~≤L\(≤⎇≡→<nD
x:=¬D⊃~8,⎇[|⎇
≤h≠;mm=≠|D;Yλεg~h≠-⎇Z=≠n%C"U.
{H≤
}y<K.↑λ≤∞-y|X-↑h_<LT≤Y8,D→\[mT∀∀SiT_;Y∧λx;[md→;]↑\h≥
(∃x-≡λ≤⎇≡→+C!!"C"Jx25λ
:⊂5⊃!QU~~.4~<h∞M→(≤∞-;]~-lh≤⎇≡→+H∧
~→(λ:∃(~.4≥x:.M;Yhm|H_-←(→=L]]λ∞>8zλ≡h_#!-9<|l≤y(→N-{(≥
(≤y.-8;λ
M;Y(∞=9{X-M~;Yd(≤≤M≥]λ≤L↑=9<nEHλ∃
∞<h≥∞↑[Z;Lt≠{C!.~→( ≥4≤Z-nλ≤≥.Nh~=∧
;]≠d∞~→(
|:=λ∞>_=→%a"C"JO<~;Lt≥~→$¬⊗Y;M≡~
(∧{{\m⎇→)|dλTQ0)4λ~y/∀≥z;
Dλ→[n,y(→-n≤↑(∧
;]≠d∞~→(∧εN~c!-;{Z.M|KH∧
≡<~-lh_;O∀≠⎇~↑H_z≡X8⎇↑H≠{D∞~→(={\{mL(≥z-Mλ→[n,y(→-n≤↑(∧
;]≠aQ]~→$λ~89mm|⎇~,4∪;p↔~z7y↔βEαE"∩`cg'Tj$aP∪gg$j∪iεE*~4yP4\P:ybY⊂37`2 software debuggifg∞ PeRhaps someday there'll be a
pointer here to dkcumentation about all the o@AiS←]L\\\@↓
←dAQQJA[=[K]h0ACYX4∃sOj↓QCmJ↓iVAW9←nASLAiQCP@E"@qeKikI\|DAEkSif↓iQJA5←]Si=dXAe∃i`↔KvK;≥βN{UβSxh+S#*β←π' βGSπ&)9↓α∞s⊃α
the 68k monitor.
68K MONITOR
The 68000 board comes with a small monitor for debugging, which, on Canon,
can be activated by hitting the console's BREAK key. Two commands are of
interest. "C <return>" causes program continuation and "Z <return>" causes
system initialization.
INITIALIZATION
To initialize the ImPrint-10, either power it up, with the on/off switch
on the back side of the card cage (on the right end), or press the console's
BREAK key and type "Z <return>". It will enter wait state and be ready to
respond to print requests from Sail.
Console messages while printing
PRINTING MESSAGES
Upon beginning a print request, three sizes are given:
INP is the number of bytes given to input data
GLY is that available to use as glyph storage
PWI is a mystery
These numbers are in hex (1000 hex = 4096).
ERROR MESSAGES
During printing, Canon sends any error messages to the (Heath Kit)
terminal. Do not try to read them- they are written in a South American
dialect specially made to be scrolled off of the screen at high velocity.
Some tanslations follow:
Beginning print of page # 0001; done
No problems!!!
Object Area Overflow:
Too many instances of things are typeset on the page;
Invalid Glyph Dimensions:
Glyph's currently can not have zero height or width.
Undefined Glyph:
Printing a glyph that has not been defined, or whose dimensions were
invalide results in this error.
Something out of paper:
This is a euphemism for something being typeset OFF of the paper, too
far to the right, left, too far up or down.
Unexistent command
Bad Mode
Waiting for permission to compress the Glyph Table
Waiting for Input
Input Page Too Big
Bus Error - currently hap@AK]fA]QK\Ae←jAiIrAi↑↓aeS]PAGQCICGiKIbAiQ¬hACe∀~∀∪i=↑AYCIOJXA∃NXAi¬YYKd↓iQC\bdpAASqKYL\~∀~)∪LAs=j@Ai!S]VAQQJ@A∃ee←dA[KgMCOKf↓CeJ@↓GesaQSF@A¬]HAg!←kYHAae←YSIJ@↓[←eJ4∃S]M=e[Ci%←\XAQQChOL@AoQ¬hA∩@↓iQ←k≥QhX@↓i←↑\A≠kGαA↓β3∂#↔I1αβ←#↔rβ←∃↓ε;↔Q↓ελ4+O∧{?3↔∩aβ';&+33'>+;Q↓ε+KK?∩↓β7↔∨≠π∨↔~↓β←'fa↓β*βO↔;"↓βπ≡Y↓βSz↓βS#*↓βCKNsP4+⊗+GW↔∨#↔I9rp4(0%↓α↓αOS∂∪S';:βS#∃∧K6CKNsQ5EααCK'w#↔H4Ph*;?&)iβO.)β;↔G!βCπ>)β≠?∩β∪'π?∪π5β}1α∂πv{9∨Mπ≠↔SWαβ'9β&C∃β∂≠↔7↔w!84(hR&:&$Jε2&TJ:≥α$B∃αB∀J:R⊗∪Q↓4R↓↓↓α'+K9β}qβS#*βCK'w#↔Iβ/≠';≥π##∃βfK∨∃ε∪3π∂ZβC3π∨#'
β&{∨∂3*β?9β&C∃β≠⊗{;Q0hS3↔≠"βO'∪*q↓αSF)β∨K.+9βK.∪e?>'QβfK∨#Qαβ←'3bβ3'vYβ≠?∩β¬β≠/9βO↔≡{;∪Mr↓↓α'0h+π3bβ?→β&C∃β3N;#SMεK∃β}q1βS↔Iβ←πO#';≥π+;S'bβS#∃∧~BUβO→βK↔∞#e9↓∧K→βSF)↓α∞¬(4*&~βK↔π'I1βS↔IβSW⊗s';≥εKQβ?61βπ;"β?9β∞;π'9ε{IβC∞s'∂/Ns≥βπ~β?WSfK;↔⊃ε∪↔3?:p4(4T∩VRR|rMh4R↓↓↓α&C∃αS/≠Q?K/≠↔QβfK∨#Qε#?↔Mαβ;?Qπ;?K-r↓αW"β'→↓πK?Uβπ+O!β&C∃↓β&+OQ?⊗+O↔PhSWS&{91βN{U∨3bβS↔3bβS#∃∧~BUβ&yβCKNsQβ?/!βCπ>+Mβ?2β∨K'"β7πK←→9↓αεcWMβN{U∨3`h+∨↔"βS#∃εk↔OO∞;∃↓
π∪';SNs≥↓α/C↔K∂O≠∃αK/W↔O&+⊃ β}q↓βSF)β∂?w≠?3∃r↓αCW≡A↓βSF(4+/#S?9ε∨π'rβS=β&KOπf)β'Qr↓αO?}qβ'Qπ;'31ε∪∃β∂F;∨↔"βO=β&CπQβ.∂!βπ∪↔OMε{_4+&C∃β/#S?9ε;↔;↔⊗S↔MεSWOQαβ?;∃ε+c↔K≡Kk∃β≡yβg?*↓β←?r;Qβ#∂3∃βSzβ←?K↔I↓βπ⊗{WP4VKSMβ∨#πS∃ph(4)α↓↓αSF)β?SF+IβS>yβW'#?;MεK∃β&KOπf+⊃84Ph*⊗J∀zIα∞|r∩&RLz:Miα4)↓α↓α∪?∨+7↔;&S'?rβ'MβNqα'6π∪';Q?→↓#K.!1βOεKKπ1ε∪?W;"Iβ;?&+??ZqαKN+≠3erq84*>C↔9βfKQ1β&C∃β≠␈+Iβ3N;#SMαC←'SB↓βO//#∂#↔~βπ?6)βS#.i%β7.91β7∪?5βf+≠Q↓π#<4+⊗K∨#QR↓#S#*β≠K?w!β?→π##∃βπ∪';S/⊃β'Mπ##∃β≡K∪∃β>KS!β&C∃β3N;#SMHh(4*⎇*Qα>2αBεB-⊃iα↔O##↔IαβS#∃πβπC↔∩β∂πO≡+SS∃εKM↓βNsOSπfc↔⊃βNs∂?K⊗+∂S3Jβ?I↓π##∀4TK6CKNsQβ;.+∪Mβn{K∃βεC↔Ir↓α'→π##∃βfSS↔∩aβK↔n{[∃β&C∃βf∂-βεC↔Iπ#Kπeε3K?4hSS#∃εc↔≠Qπ≠'∪∃αβ?→β&C∃↓αNjCK'w!↓#+/≠QβC.c1↓β>+;S3JβWQαβ≠'Knce%9αα≠';"↓βS#(h+Cπε+I1αtzR∃↓B %↓β≡K↔≠.c3eβ>C'∂!π≠'∪∃εKMβWαβπ;⊃ε∪⊃β≡{7∃βεC↔Iε3π∂∃π+A↓β&x4+SF)βSK∂I9↓α⊗+';O/∪Q↓β&C∃βS⊗e↓#π+Q↓βO!β'9εCCK␈C'7π&+3e↓π##∃β⊗K∨#QαβC3π≡)04+π+O!β>+;S3Jβπ;⊃π##∃β'∪πeβ>K31β⊗)β∨WN#↔⊃βNq%84Ph*:⊗,"MαB∀*6&aR↓↓α7∂K∃β&C∃↓αNjCK'w!↓β;.+∪Mβn{K∃↓πβK↔7OA9↓α'∪e↓β␈β↔;'v9↓βπv 4+∂f{O';:βS#∃εc↔≠Qε3K?;"↓βCπv+19↓∧K→βSF)β3'>CQ↓βε+KO'∨#Mβ'"βCK?⊗3eαβK↔πfcd4+v+↔∪MεKQ9↓∧3';⊃ε β?'#3∃↓F α∂πv{9β␈#S3∃π;'S!ε βC'∨#WK∃ε{→β¬ε#K?Aεc'/∃π##∀4Wβ'∂S/∪∃βπ⊗{[∃β&C∃↓βfK∨#Qbβ3??Z↓β↔f{]βSF)↓α'mβK';";MβS∞∪3∃↓ε;⊃β⊗+3?]αβS#∀hSSπf)β;↔∂⊃βS#*β∪??∩Iβπ;"↓βO#∞[∃β'"β←↔3bq↓α?ε+9↓β&C∃β7N#∪3∃πβπ;↔bβπ;⊃αβC?W⊂h+#πf1β?→π##∃β⊗{SS3*β';SzβS#∃εC?3∃εK9βSF)β3∞≠-βS⊗eβSFQβ3.∪Mβ&yβS#*βSπ;Zp4(4UαεB⊗∩α*ε5RαO?7*βCπC/⊃β7πJβ∃↓ε≠πW∨G!β'9π##∃αNjCK'w!β';vK∪Mr↓αSKJ↓β?C.s';≤hSπ;⊃ε≠3?ONs≥βSF)β≠K}sQβ3.3QβC∞s↔19αα'→β&C'Mβ&{↔Mβv{Qβ←␈∪-1β&C↔K∃εkπeβ⊗+π33Hh+∃π≠?7∃πβπC↔∩β∂πW>CQ9↓¬∪↔7?6)β'Qαβ∂πK.3W33Jq↓α≠␈⊃β#↔g↓βO↔*βCπ∨/→↓Eak⊃E↓β}04+SF)↓
'mβK';"α2
Ak Aα?ε+KπSN{9α7∞sWπ1∩q↓↓α/≠Wπ3gIβg?*β∂π9πβW31π≠SW∂Z↓βCπε+H4+␈+Qβ≠⊗{5β←F+K∃↓εKQβ∨}+Mβ'r↓β?Iπ;#↔K*β'Q↓ε≠?7↔~β?WQr↓αg?*↓β∂πrβSKeαβ?C↔vK;≤4W##';?→βWAb↓βW"β∃↓ε≠πK↔7+19↓¬∪↔7↔⊗+I↓β&yβCW≡A↓βSF)βK↔"↓βK↔≡+Qβ3/3↔I↓ε#?←8hS↔≠␈∪∃β∂f{O';:βS#∃π#?Aβf+≠Q↓εc'⊃9∧K→βg␈)β;↔.!β#↔g↓1↓β≡+↔-α∀
M1αe"Aβ?∩↓α2⊗_h*αO∞K184Ph*:⊗,"MαR|r⊗IiεK→βSF)β3''#3∃β&{;↔Iαβ?S&c∃β.C';⊃π##∃β7∪?;Qεk'∪∪.aβCπv+1↓βO_4+↔oβSe1π#π/∃εKQβ?/!↓#S/∪9α∞≥9β↓E≠)βπ;"βCW3bβ'Qβ␈+Q%1ε;⊃β⊗+C3π≡)β'Qπ;'S!αβ∧4+7+31β}s∃↓#π∪?π⊗ceβ.c?]↓π##∃β&3∃Jβ7π/Ns≥βO/∪∃↓β&C∃βS}s↔IβO→βO#∞[↔9↓ε;⊂4W##∃β⊗cπ∂-αβ[π36)β'Mαβ?9↓π##∃β⊗{SS3*↓βCK␈β↔K3Jβπ;⊃αβCWQαβ'Qβ⊗∂-↓εK;S=αβS#∀hR'6C⊗K;Q9If it is not empty, the toner is clogging the valve, try turning
the bottle CW & CCW a few times.
Turning Off Canon
If you need to turn Canon off, there are two power switches. The one
on the right side of the back turns off the CPU. The one on the left,
front turns off the printing machinery. Turn the printing part off
to avoid shocks when cleaning the corona wires or the drum or if you
need to poke in from the front to clean out jammed paper.
Please do not disconnect other wires. If you do fiddle with anything,
please leave a message in Canon.con[can,sys].
Diagrams
top view:
CPU
___________ on/off
| | | ------------------------------------/\---
| | | | Laser Printer . | |
| Console | --------+ . | |
| Terminal | | | . | |
| | | | paper | . | CPU |
| | | | tray | . | cage |
------------ | | top lid . | |
--------+ . | |
| . | |
---\/----------------xxxxxxxxx-----------
printer ↑ ↑ lights
on/off | |
| |
side door middle panel
Note that only the location of the lights are shown
**************************************************
and the insides:
back
------------------------------------/\---
| . | |
--------+! . | |
| |! . | |
| paper |! D R U. M () | CPU |
| tray |! . INK || | cage |
| |! . TRAY || | |
--------+! . || | |
|↑ X . O -- | |
←left -|-\/-↑---------------↑-------↑----------
| | Premix Toner bottle
handle | hole
red reset lever